package com.bjsxt.userCenter.outer.controller;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bjsxt.userCenter.common.controller.BaseController;
import com.bjsxt.userCenter.common.util.ConstatFinalUtil;
import com.bjsxt.userCenter.outer.service.IOuterService;

/**
 * 对外提供的json格式
 * 
 * @author zhanghuan
 *
 */
@Controller
@RequestMapping("/outer/json")
public class JsonOuterController extends BaseController
{
	@Resource
	private IOuterService outerService;

	/**
	 * 接口文档,要返回json字符串
	 * 
	 * @return
	 * 
	 */
	@RequestMapping(value = "/verfiyToken", produces = "text/html;charset=utf-8")
	@ResponseBody
	public String verfiyToken(String json)
	{
		ConstatFinalUtil.SYS_LOGGER.info("--verfiyToken---");
		JSONObject resultJSON = new JSONObject();

		/* 处理参数 */
		if (json == null)
		{
			json = "";
		}
		
		/* 传了上行参数，进行解析 */
		if (!"".equalsIgnoreCase(json))
		{
			/*
			 * 重要,重要,重要
			 * 版本????考虑版本
			 * 
			 */
			JSONObject reqJSON = new JSONObject();
			/* 传了上行参数,解析 */
			try
			{
				reqJSON = (JSONObject) JSON.parse(json);
				try
				{
					/* 取到版本号 */
					String version = reqJSON.get("version") + "";
					if ("1".equalsIgnoreCase(version))
					{
						/* 第一个版本协议 */
						resultJSON = this.outerService.verfiy01TokenService(reqJSON);

					} else
					{
						/* 版本号不正确 */
						resultJSON.put("code", "11");
						resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("11") + "");
					}
				} catch (Exception e)
				{
					/* "13":"系统跑偏了,抛异常了" */
					resultJSON.put("code", "13");
					resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("13") + ";" + e.toString());
				}

			} catch (Exception e)
			{
				/* 上传的json格式不正确 */
				resultJSON.put("code", "10");
				resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("10") + ";" + e.toString());
			}

		} else
		{
			/* 请上传上行参数 */
			resultJSON.put("code", "9");
			resultJSON.put("info", ConstatFinalUtil.INFO_JSON.get("9") + "");
		}
		return resultJSON.toJSONString();
	}
}
